Switching media streams in a client system based on environmental changes

ABSTRACT

A process for switching media streams of a video in a client system. The media streams are made available to the client system by a content providing system. A first media stream received from the content providing system is played in a SHOW mode in the client system. An environmental change in an environment within or adjacent to the client system is detected, resulting in executing a procedure for deciding whether to switch from playing the first media stream to playing a second media stream differing from the first media stream. The executed procedure decides to make the switch. The switch is made to playing the second media stream in the SHOW mode as the second media stream is being received from the content providing system in response having been requested from the content providing system. The switching preserves content continuity of the video.

This application is a continuation application claiming priority to Ser.No. 12/046,486, filed Mar. 12, 2008.

FIELD OF THE INVENTION

The present invention discloses a method and system for switching videostreams of a video in a client system.

BACKGROUND OF THE INVENTION

In current practice, as content providers seek to provide morehigh-quality video to users over the Internet, the content providersquickly find that high bandwidth live streams distributed to manysimultaneous users can lead to very high bandwidth cost. There are anumber of different solutions to limit the bandwidth usage of multiplehigh-quality streams that are currently in use. However, each of thesesolutions has drawbacks. One popular method is to provide a “waitingroom” where users basically have to wait their turn to see the video. Adrawback to this method is that it limits the number of users who cansee the video at once and reduces the overall user experience. Anothermethod is to ask the users if they are still watching the video after aset timeout period and disconnect the users who do not respond. Thisagain degrades the user experience by popping up messages to the user.

There is a need for a method and system that overcomes or mitigates theaforementioned shortcomings of current practice of providing video tousers.

SUMMARY OF THE INVENTION

The present invention provides a method for switching media streams of avideo in a client system, said media streams being made available to theclient system by a content providing system, said method comprising:

receiving a first media stream of the video from the content providingsystem;

playing the first media stream in a SHOW mode in the client system asthe first media stream is being received;

during said playing the first media stream, detecting an environmentalchange in an environment within or adjacent to the client system, saidenvironmental change configured to activate executing a procedure fordeciding whether to make a switch from playing the first media stream toplaying a second media stream of the video, said second media streamdiffering from the first media stream with respect to a differentiatingcharacteristic selected from the group consisting of a content modality,a color scheme, and a media stream bandwidth;

responsive to said detecting the environmental change, executing theprocedure;

deciding from said executing the procedure to make the switch; and

after said deciding, switching from playing the first media stream toplaying the second media stream in the SHOW mode as the second mediastream is being received from the content providing system in responsehaving been requested from the content providing system, said switchingpreserving video content continuity of the video,

wherein said receiving the first media stream, said playing the firstmedia stream, said detecting the environmental change, said executingthe procedure, said deciding, and said switching are performed by amedia application in the client system.

The present invention provides a process for supporting computerinfrastructure, said process comprising providing at least one supportservice for at least one of creating, integrating, hosting, maintaining,and deploying computer-readable code in a computing system, wherein thecode in combination with the computing system is configured to perform amethod for switching media streams of a video in a client systemcomprised by the computing system, said media streams being madeavailable to the client system by a content providing system, saidmethod comprising:

receiving a first media stream of the video from the content providingsystem;

playing the first media stream in a SHOW mode in the client system asthe first media stream is being received;

during said playing the first media stream, detecting an environmentalchange in an environment within or adjacent to the client system, saidenvironmental change configured to activate executing a procedure fordeciding whether to make a switch from playing the first media stream toplaying a second media stream of the video, said second media streamdiffering from the first media stream with respect to a differentiatingcharacteristic selected from the group consisting of a content modality,a color scheme, and a media stream bandwidth;

responsive to said detecting the environmental change, executing theprocedure;

deciding from said executing the procedure to make the switch; and

after said deciding, switching from playing the first media stream toplaying the second media stream in the SHOW mode as the second mediastream is being received from the content providing system in responsehaving been requested from the content providing system, said switchingpreserving video content continuity of the video,

wherein said receiving the first media stream, said playing the firstmedia stream, said detecting the environmental change, said executingthe procedure, said deciding, and said switching are performed by amedia application in the client system.

The present invention provides a computer program product, comprising acomputer usable storage medium having a computer readable program codestored therein, said computer readable program code containinginstructions that when executed by a processor of a computer systemimplement a method for switching media streams of a video in a clientsystem comprised by the computer system, said media streams being madeavailable to the client system by a content providing system, saidmethod comprising:

receiving a first media stream of the video from the content providingsystem;

playing the first media stream in a SHOW mode in the client system asthe first media stream is being received;

during said playing the first media stream, detecting an environmentalchange in an environment within or adjacent to the client system, saidenvironmental change configured to activate executing a procedure fordeciding whether to make a switch from playing the first media stream toplaying a second media stream of the video, said second media streamdiffering from the first media stream with respect to a differentiatingcharacteristic selected from the group consisting of a content modality,a color scheme, and a media stream bandwidth;

responsive to said detecting the environmental change, executing theprocedure;

deciding from said executing the procedure to make the switch; and

after said deciding, switching from playing the first media stream toplaying the second media stream in the SHOW mode as the second mediastream is being received from the content providing system in responsehaving been requested from the content providing system, said switchingpreserving video content continuity of the video,

wherein said receiving the first media stream, said playing the firstmedia stream, said detecting the environmental change, said executingthe procedure, said deciding, and said switching are performed by amedia application in the client system.

The present invention provides a computer system comprising a processorand a computer readable memory unit coupled to the processor, saidmemory unit containing instructions that when executed by the processorimplement a method for switching media streams of a video in a clientsystem comprised by the computing system, said media streams being madeavailable to the client system by a content providing system, saidmethod comprising:

receiving a first media stream of the video from the content providingsystem;

playing the first media stream in a SHOW mode in the client system asthe first media stream is being received;

during said playing the first media stream, detecting an environmentalchange in an environment within or adjacent to the client system, saidenvironmental change configured to activate executing a procedure fordeciding whether to make a switch from playing the first media stream toplaying a second media stream of the video, said second media streamdiffering from the first media stream with respect to a differentiatingcharacteristic selected from the group consisting of a content modality,a color scheme, and a media stream bandwidth;

responsive to said detecting the environmental change, executing theprocedure;

deciding from said executing the procedure to make the switch; and

after said deciding, switching from playing the first media stream toplaying the second media stream in the SHOW mode as the second mediastream is being received from the content providing system in responsehaving been requested from the content providing system, said switchingpreserving video content continuity of the video,

wherein said receiving the first media stream, said playing the firstmedia stream, said detecting the environmental change, said executingthe procedure, said deciding, and said switching are performed by amedia application in the client system.

The present invention provides a method and system that overcomes ormitigates shortcomings of current practice of providing video to users.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts a client system receiving video from a content providersystem via a communication network, in accordance with embodiments ofthe present invention.

FIGS. 2 and 3 depict media stream switching scenarios, in accordancewith embodiments of the present invention.

FIG. 4 is a flow chart depicting a method for switching media streams ofa video in a client system, in accordance with embodiments of thepresent invention.

FIG. 5 is a flow chart depicting a procedure for a step in FIG. 4 ofdeciding whether to make a media stream switch, in accordance withembodiments of the present invention.

FIG. 6 is a flow chart depicting a first exemplary procedure for a stepin FIG. 4 of making a media stream switch, in accordance withembodiments of the present invention.

FIG. 7 is a flow chart depicting a second exemplary procedure for a stepin FIG. 4 of making a media stream switch, in accordance withembodiments of the present invention.

FIG. 8 illustrates a computer system used for switching media streams ofa video in a client system, in accordance with embodiments of thepresent invention.

DETAILED DESCRIPTION OF THE INVENTION

A “video” includes a time-ordered sequence of images which may appear inframes. A video may also comprise audio content synchronized with itsincluded images. Thus a video comprises image content alone or bothimage content and audio content. A “media stream” associated with avideo is a signal being streamed along a transmission path, wherein thesignal comprises content from the video in accordance with a contentmodality. For a video having both image content and audio content, itsassociated media stream may be in one of several content modalities: animage-audio modality if the media stream comprises both the imagecontent and audio content of the video; an image-audio modality if themedia stream comprises the image content but not the audio content ofthe video; or audio-only modality if the media stream comprises theaudio content but not the image content of the video. For a video havingimage content but no audio content, its associated media stream must bein an image-only modality.

A “video source” generates or otherwise provides a video. A media streamassociated with a video may originate from a video source and beultimately delivered to a user system which presents the content of themedia stream to a user, enabling the user to experience the videovisually and/or audibly depending on the content modality (i.e.,image-audio modality, image-only modality, or audio-only modality) ofthe associated media stream.

A media stream is characterized by a “bandwidth” denoting a maximum rateat which the data in the media stream can be transmitted (e.g., in unitsof bits per second or bytes per second) over its transmission path.

FIG. 1 depicts a client system 20 receiving video from a contentprovider system 10 via a communication network 28, in accordance withembodiments of the present invention. In one embodiment, thecommunication network 28 is the Internet.

The content provider system 10 comprises a video source 11, an encoder12, an encoder 13, a streaming media server 14, and a firewall 15. Theencoders 12 and 13 each encode the content of the media stream bytechniques known in the art that include, inter alia, image compressionand audio compression. Although the content provider system 20 depictsonly encoders 12 and 13, the content provider system 20 generallycomprise a plurality of encoders which encode media streams havingdifferentiating characteristics which differentiate media streams fromeach other. For example, the encoder 12 and encoder 13 may each encodemedia streams of different content modality (i.e., the image-audiomodality, the image-only modality, and the audio-only modality).

Video is provided by the video source 11 and an associated video streamis passed into an encoder (e.g., encoder 12 or encoder 13) and passesout of the encoder, into the streaming media server 14, through thefirewall 15 and into the client system 20 via the communication network28. This resultant video stream 18 is received by the client system 20.Although the content provider system 10 is depicted in FIG. 1 with thestreaming media server 14 therein for providing streaming image content,or streaming image and audio content, to the client system 20, in oneembodiment the streaming media server 14 is not present in contentprovider system 10. Although the content provider system 10 is depictedin FIG. 1 with the firewall 15 therein for protecting against illegalunauthorized access and/or interception of the video stream provided bythe video source 11, in one embodiment the firewall 15 is not present inthe content provider system 10.

The client system 20 comprises a media application 21, a display 24, aprocessor 23 (e.g., a central processing unit (CPU)), a memory 22, anoperating system 25, a microphone 36, and a photosensor 37. Theprocessor 23 is coupled to the media application 21, the display 24, theprocessor 23, and the memory 22. The media application 21 processes themedia stream 18 and displays the media stream 18 to a user of the clientmachine 20 on the display 24. The client system 20 may be a computersystem in a form of a data processing system, a television system, etc.The client system 20 is configured to have a user 29 view and/or hearthe video and/or audio of the media stream 18.

A process of switching media streams begins with the media application21 loading a configuration file in the memory 22. The configuration filedesignates a specific default media stream to be initially played in aSHOW mode on the display 24. The configuration file also designatesvideo stream to switch to based on a detected environmental change in anenvironment within or adjacent to the client system. A SHOW mode isdefined as a mode in which all visual and audio attributes of the mediastream being played are presented to the user 29 at the client system20. Then the media application 21 checks for the environmental changewhich may trigger the client system 20 to switch to a new media stream.Switching media streams of a video in accordance with embodiments of thepresent invention enables video to be provided to the user system 20 inan efficient manner that is convenient for a user of the client system20.

Once the media application 21 detects the environmental change anddecides to switch video streams based on the environmental change, themedia application 21 initiates a loading of the new video stream in aHIDE mode. A HIDE mode is defined as a mode in which the video streamthat is being played in the client system 20 is muted and visuallyunavailable to the user 29 at the client system 20.

The new media stream to be switched from the default video stream may bepredesignated as a function of the environmental change and identifiedin the configuration file or elsewhere in the memory 22. Timecodesdistributed in each media stream identify relative time along thetimeline of each media stream. Thus, timecodes with equal values in bothmedia streams identify the same relative time in the timeline of themedia stream being played, or equivalently the same frame in the framescomprises by the video.

After the new stream has begun playing in the HIDE mode, the mediaapplication 21 begins to check the timecodes distributed in both mediastreams until the media application 21 finds a timecodes in the newmedia stream being played in the HIDE mode that matches (within aspecified tolerance) a timecode of the current media stream (e.g.,default media stream) being played in the SHOW mode. Once this matchingtimecode is found, the media application 21 stops the current mediastream and switches the new media stream into the SHOW mode, whichunmutes and makes the new media stream visible and audible to the user29.

If the media application 21 is not able to locate a matching timecode(within a specified tolerance) and within a specified time period, themedia application 21 may pause the current media stream until the mediaapplication 21 finds a new stream timecode matching the paused streamtimecode. The media application 21 may then continue by switching to thenew media stream from the HIDE mode to the SHOW mode. In thisembodiment, the user 29 would experience a pause in the video steambeing played in the SHOW mode, similar to a buffering event. However,the user 29 would not experience any loss of content continuity in thevideo.

FIGS. 2 and 3 depict media stream switching scenarios, in accordancewith embodiments of the present invention.

In FIG. 2, media stream 1 is playing in the SHOW mode and the mediaapplication 21 receives a command to switch media streams at a 5 minutetimecode mark within the streams. The media application 21 then startsplaying media stream 2 in the HIDE mode. Once media stream 2 hasfinished buffering and started playing, the media application 21 beginsto check the timecodes in media streams 1 and 2. The media application21 finds matching timecodes at 5 minutes 10 seconds at which time mediaapplication 21 makes media stream 2 visible and unmuted by switchingmedia stream 2 into the SHOW mode and also stops the playing of mediastream 1.

In FIG. 3, the timecodes for media stream 2 are behind the timecodes formedia stream 1, which means that media stream 2 is lagging the mediastream 1 with respect to their respective content. In this situation,the media application 21 pauses media stream 1 until stream 2 catches upand matching timecodes are found at 5 minutes 30 seconds.

FIG. 4 is a flow chart depicting a method for switching media streams ofa video in the client system 20, in accordance with embodiments of thepresent invention. The media streams are made available to the clientsystem 20 by the content providing system 10. The method of FIG. 4 isperformed by the media application 21 of the client system 20 in steps41-48.

Step 41 launches the media application 21 in the client system 20.

Step 42 loads into the memory 22 a configuration file that designates aspecific media stream to be initially played in the client system 20 asa default media stream, which is denoted as a first media stream.

Step 43 receives the first media stream from the content providingsystem 10.

Step 44 plays the first media stream in the SHOW mode via the display24.

Step 45 checks for an environmental change that triggers execution of aprocedure that decides whether to make a switch from playing the firstvideo stream to playing a second video stream of the video, wherein thesecond video stream differs from the first video stream with respect toa differentiating characteristic. The environmental change may be, interalia, a screen saver of the client system 20 in use, a change in a soundlevel adjacent to the client system 20 that exceeds a pre-specifiedchange in sound level, a change in lighting level adjacent to the clientsystem 20 that exceeds a pre-specified change in lighting level, and ahardware overload in the client system 20. The differentiatingcharacteristic may be, inter alia, a content modality (defined supra), acolor scheme, or a media stream bandwidth. A color scheme is a colorshading designation, such as inter alia: shades of a single color,shades of a plurality of colors, black-and-white, shades of gray, etc.of the images in the media stream.

Step 46 determines whether the environmental change has been detected.If step 46 determines that the environmental change has not beendetected, then the method loops back to step 45 to continue checking foran environmental change; otherwise the environmental change has beendetected and step 47 is next performed.

Step 47 performs execution of a procedure for deciding whether to makethe switch from playing the first media stream to playing the secondmedia stream. The execution of step 47 is described in more detail inFIG. 5, discussed infra. If the procedure performed by step 47 decidesnot to make the switch, then the method loops back to step 45 to checkfor another environmental change; otherwise step 48 is next performed.

Step 48 switches from playing the first media stream in the SHOW mode toplaying the second media stream in the SHOW mode as the second mediastream is being received from the content providing system 10, inresponse to the second media stream having been requested from thecontent providing system 10 by the client system 20. The switchingpreserves content continuity, which means that there is essentially noomission of content of the video displayed in the SHOW mode as a resultof the switching. In one embodiment, the switching is performedseamlessly in time in a manner that preserves time continuity ofpresenting the video to the user 29 in the SHOW mode, as in the exampleof FIG. 2 described supra. In one embodiment, the switching is performedwith a pause in time in the playing of the video in the SHOW mode, as inthe example of FIG. 3 described supra. The execution of step 48 isdescribed infra in more detail in FIGS. 6 and 7 in accordance with theexamples of FIGS. 2 and 3 respectively.

After step 48 is executed, the method loops back to step 45 to check foranother environmental change which may result in switching to a next newmedia stream, wherein the prior second media stream is now designated asthe first media stream with respect to subsequent execution of steps45-48, and the next new media stream to be switched to is designated asthe second media stream with respect to subsequent execution of steps45-48.

FIG. 5 is a flow chart depicting a procedure for step 47 in FIG. 4 ofdeciding whether to make the switch from playing the first media streamto playing the second media stream, in accordance with embodiments ofthe present invention. The flow chart of FIG. 5 comprises steps 51-53.

Step 51 determines whether the detected environmental change satisfies apre-specified condition for switching media streams.

If step 51 determines that the detected environmental change satisfiesthe pre-specified condition, then step 53 is next executed and decidesto switch streams; otherwise step 52 is next executed and decides to notswitch streams.

In one embodiment, the detected environmental change is a screen saverof the client in use in the client system 20. The pre-specifiedcondition is that he screen saver has been in use for at least apre-specified period of time. The differentiating characteristic is thecontent modality such that the first media stream comprises animage-audio modality and the second media stream comprises an audio-onlymodality. This embodiment assumes that when a screen saver is in use,the user 29 does not have a need to experience image content of thevideo stream.

In one embodiment, the detected environmental change is a change in asound level adjacent to the client system 20 that exceeds apre-specified change in sound level, as detected by the microphone 36 ofthe client system 20. The pre-specified condition is that a currentsound level associated with the detected change in the sound levelexceeds a pre-specified sound level for at least a pre-specified periodof time. The differentiating characteristic is the content modality suchthat the first media stream comprises an image-audio modality and thefirst media stream comprises an image-only modality. This embodimentassumes that when the sound level is sufficiently high in relation to acomfort level of human sound reception, the user 29 does not have a needto experience audio content of the video stream.

In one embodiment, the detected environmental change is a change inlighting level adjacent to the client system 20 that exceeds apre-specified change in lighting level, as detected by the photosensor37 of the client system 20. The pre-specified condition is that acurrent lighting level associated with the detected change in thelighting level exceeds a pre-specified lighting level for at least apre-specified period time. The differentiating characteristic is thecolor scheme such that the first media stream comprises a first colorscheme and the second media stream comprises a second color scheme thatdiffers from the first color scheme. The second color scheme enables thesecond media stream to be viewed with better visual clarity at thecurrent lighting level than the visual clarity of the first media streamcomprising the first color scheme. This embodiment attempts to tailorthe color scheme to the detected lighting level in order to optimize orimprove visual clarity of the media stream.

In one embodiment, the detected environmental change is a hardwareoverload in the client system 20 (e.g., a hardware malfunction thatimpact storage and/or processing of the first media stream, a currentheavy use of data storage by user(s) in the that limits data storage forthe first media stream, etc.) that may requires a change in media streambandwidth in order to more efficiently process the video data. Thepre-specified condition is that the hardware overload is matched to ahardware overload condition in a pre-specified list of hardware overloadconditions that may be stored in the client system 20 (e.g., the memory22). The differentiating characteristic is the media stream bandwidthwhich will differ in the second media stream from the media streambandwidth in the first media stream so as to improve the efficiency ofprocessing the video data by the client system 20 in relation to thehardware overload (i.e., the specific nature of the hardware overload istaken into account in selecting the media stream bandwidth that thesecond media stream should comprise).

The pre-specified conditions and associated second media streams may bestored in the client system 20 (e.g., in the memory 22). The storedsecond media stream(s) for each pre-specified condition may be a singlesecond media stream or a group or class of media streams from which aspecific second media stream may be selected by the user system 20. Thegroup or class of media streams comprises a plurality of media streams.Thus in one embodiment, the user system 20 selects the second mediastream from the group or class of media streams, either randomly or inaccordance with a criteria that selects a best (or not the worst) secondmedia stream from the group or class of media streams, in relation tothe triggering environmental change.

FIG. 6 is a flow chart depicting a first exemplary procedure for step 48in FIG. 4 of switching from playing the first media stream to playingthe second media stream, in accordance with embodiments of the presentinvention. The flow chart of FIG. 6 is in accordance with the exampledepicted in FIG. 2 and comprises steps 61-65.

In step 61, the media application 21 requests a second media stream fromthe content providing system 10.

In step 62, the client system 20 receives the requested second mediastream such that the first and second media streams are being receivedconcurrently with respect to their respective content.

In step 63, the media application 21 plays the second media stream inthe HIDE mode while the second media stream is being received and whilethe first media stream continues to be played in the SHOW mode.

In step 64, at a subsequent real time corresponding to a matchingtimecode (within a specified tolerance) in the first and second mediastream, a transition is implemented from playing the second media streamin the HIDE mode to playing the second media stream in the SHOW mode.

In step 65, playing the first media stream is stopped, aboutsimultaneous with performance of step 64 of initiating playing thesecond media stream in the SHOW mode.

FIG. 7 is a flow chart depicting a second exemplary procedure for step48 in FIG. 4 of switching from playing the first media stream to playingthe second media stream, in accordance with embodiments of the presentinvention. The flow chart of FIG. 7 is in accordance with the exampledepicted in FIG. 3 and comprises steps 71-75.

In step 71, the media application 21 requests a second media stream fromthe content providing system 10.

In step 72, the client system 20 receives the requested second mediastream such that the second media stream is lagging the first mediastream with respect to their respective content.

In step 73, the media application 21 plays the second media stream inthe HIDE mode while the second media stream is being received.

In step 74, playing the first media stream is paused before or duringplaying the second media stream in the HIDE mode in step 73. The time atwhich pausing is initiated may take into account a relativedesirability, or lack thereof, for pausing the first media stream atdifferent timecodes in the video. For example, if the video is of afootball game and the first media stream is displaying an attempted afield goal, it would be relatively undesirable to pause the media streamwhen the foot of the field goal kicker makes contact with the footballand it would be far more desirable to pause the first media stream aboutfive seconds later after the outcome of the attempted field goal hasbeen determined and communicated.

Thus in one embodiment, a pausing rank is associated with each timecodein the first and second media streams. The pausing rank denotes arelative rank to pause playing the first media stream, wherein themethod comprises constraining the pausing to occur at a timecode in thefirst media stream at which the associated pausing rank is not less thana predesignated pausing rank threshold. For example given apredesignated pausing rank threshold of 5, if successive timecodes T1,T2, T3, T4, and T5 in the first media stream have pausing ranks of 8, 3,5, 6, and 2, respectively, and if the second media stream can belogically paused at any timecode after T1, then the second media streamswould be paused at the timecode T3 because T2=3 is less than the pausingrank threshold of 5 and T3=5 is not less than the pausing rank thresholdof 5.

The pausing rank associated with each timecode may be recorded as datastored in the memory 22 and/or be embedded with the media streams.

In step 75, after having paused the first media stream in step 74 and ata real time corresponding to a matching timecode (within a specifiedtolerance) in the first and second media stream, a transition isimplemented from playing the second media stream in the HIDE mode toplaying the second media stream in the SHOW mode. The paused first mediastream is stopped from being paused and from being played at about thisreal time.

FIG. 8 illustrates a computer system 90 used for switching media streamsof a video in a client system, in accordance with embodiments of thepresent invention. The computer system 90 may comprise the client system20 of FIG. 1. The computer system 90 comprises a processor 91, an inputdevice 92 coupled to the processor 91, an output device 93 coupled tothe processor 91, and memory devices 94 and 95 each coupled to theprocessor 91. The input device 92 may be, inter alia, a keyboard, amouse, etc. The output device 93 may comprise the display 24 of FIG. 1and additionally include, inter alia, a printer, a plotter, a computerscreen, a magnetic tape, a removable hard disk, a floppy disk, etc. Thememory devices 94 and 95 may be, inter alia, a hard disk, a floppy disk,a magnetic tape, an optical storage such as a compact disc (CD) or adigital video disc (DVD), a dynamic random access memory (DRAM), aread-only memory (ROM), etc. Either or both of the memory devices 94 and95 may comprise the memory 22 of FIG. 1. The memory device 95 includes acomputer code 97 which is a computer program that comprisescomputer-executable instructions. The computer code 97 may comprise themedia application 21 of FIG. 1 and includes an algorithm for switchingmedia streams of a video in the client system. The processor 91 executesthe computer code 97 and may represent the processor 23 of FIG. 1. Thememory device 94 includes input data 96. The input data 96 includesinput required by the computer code 97. The output device 93 displaysoutput from the computer code 97. Either or both memory devices 94 and95 (or one or more additional memory devices not shown in FIG. 8) may beused as a computer readable storage medium having a computer readableprogram store therein and/or having other data stored therein, whereinthe computer readable program comprises the computer code 97. Generally,a computer program product (or, alternatively, an article ofmanufacture) of the computer system 90 may comprise said computerreadable storage medium.

Thus the present invention discloses a process for supporting computerinfrastructure, integrating, hosting, maintaining, and deployingcomputer-readable code into the computer system 90, wherein the code incombination with the computer system 90 is capable of performing amethod for switching media streams of a video in a client system.

Any of the components of the present invention could be created,integrated, hosted, maintained, deployed, managed, serviced, supported,etc. by a service provider who offers to facilitate switching mediastreams of a video in a client system. Thus the present inventiondiscloses a process for deploying or integrating computinginfrastructure, comprising integrating computer-readable code into thecomputer system 90, wherein the code in combination with the computersystem 90 is capable of performing a method for switching media streamsof a video in a client system.

In another embodiment, the invention provides a business method thatperforms the process steps of the invention on a subscription,advertising, and/or fee basis. That is, a service provider, such as aSolution Integrator, could offer to facilitate switching media streamsof a video in a client system. In this case, the service provider cancreate, integrate, host, maintain, deploy, manage, service, support,etc., a computer infrastructure that performs the process steps of theinvention for one or more customers. In return, the service provider canreceive payment from the customer(s) under a subscription and/or feeagreement and/or the service provider can receive payment from the saleof advertising content to one or more third parties.

While FIG. 8 shows the computer system 90 as a particular configurationof hardware and software, any configuration of hardware and software, aswould be known to a person of ordinary skill in the art, may be utilizedfor the purposes stated supra in conjunction with the particularcomputer system 90 of FIG. 8. For example, the memory devices 94 and 95may be portions of a single memory device rather than separate memorydevices.

While particular embodiments of the present invention have beendescribed herein for purposes of illustration, many modifications andchanges will become apparent to those skilled in the art. Accordingly,the appended claims are intended to encompass all such modifications andchanges as fall within the true spirit and scope of this invention.

1. A process for supporting computer infrastructure, said processcomprising providing at least one support service for at least one ofcreating, integrating, hosting, maintaining, and deployingcomputer-readable code in a computer system, wherein the code incombination with the computer system is configured to perform a methodfor switching media streams of a video in a client system comprised bythe computer system, said media streams being made available to theclient system by a content providing system, said method comprising: aprocessor of the computer system receiving a first media stream of thevideo from the content providing system; said processor playing thefirst media stream in a SHOW mode in the client system as the firstmedia stream is being received; during said playing the first mediastream, said processor detecting an environmental change in anenvironment within or adjacent to the client system, said environmentalchange configured to activate executing a procedure for deciding whetherto make a switch from playing the first media stream to playing a secondmedia stream of the video, said second media stream differing from thefirst media stream with respect to a differentiating characteristicselected from the group consisting of a content modality, a colorscheme, and a media stream bandwidth; responsive to said detecting theenvironmental change, said processor executing the procedure; saidprocessor deciding from said executing the procedure to make the switch;and after said deciding, said processor switching from playing the firstmedia stream to playing the second media stream in the SHOW mode as thesecond media stream is being received from the content providing systemin response having been requested from the content providing system,said switching preserving video content continuity of the video, whereinsaid receiving the first media stream, said playing the first mediastream, said detecting the environmental change, said executing theprocedure, said deciding, and said switching are performed by saidprocessor executing a media application in the client system, whereintimecodes identifying relative time within the video are distributed inthe first media stream and the second media stream, and wherein saidswitching comprises: requesting the second media stream from the contentproviding system; after said requesting, receiving the second mediastream from the content providing system such that the first and secondmedia streams are being received concurrently with respect to theirrespective content; playing the second media stream in a HIDE mode inthe client system while the second media stream is being received andwhile said playing the first media stream in the SHOW mode is beingperformed; and at a real time corresponding to a matching timecodeswithin a specified tolerance, in the first and second media stream,transitioning from playing the second media stream in the HIDE mode toplaying the second media stream in the SHOW mode and stopping saidplaying the first media stream.
 2. The process of claim 1, wherein saiddetecting the environmental change comprises detecting that a screensaver of the client system is in use, wherein said deciding from saidexecuting the procedure to make the switch comprises deciding that thescreen saver has been in use for at least a pre-specified period time,and wherein the differentiating characteristic is the content modalitysuch that the first media stream comprises a image-audio modality andthe second media stream comprises an audio-only modality.
 3. The processof claim 1, wherein said detecting the environmental change comprisesdetecting a change in a sound level adjacent to the client system thatexceeds a pre-specified change in sound level, wherein said decidingfrom said executing the procedure to make the switch comprises decidingthat a current sound level associated with the detected change in thesound level exceeds a pre-specified sound level for at least apre-specified period time, and wherein the differentiatingcharacteristic is the content modality such that the first media streamcomprises a image-audio modality and the first media stream comprises animage-only modality.
 4. The process of claim 1, wherein said detectingthe environmental change comprises detecting a change in lighting leveladjacent to the client system that exceeds a pre-specified change inlighting level, wherein said deciding from said executing the procedureto make the switch comprises deciding that a current lighting levelassociated with the detected change in the lighting level is outside apre-specified range of lighting level, wherein the differentiatingcharacteristic is the color scheme such that the first media streamcomprises a first color scheme and the first media stream comprises asecond color scheme that differs from the first color scheme, andwherein the second color scheme enables the second media stream to beviewed with better visual clarity at the current lighting level than thevisual clarity of the first media stream comprising the first colorscheme.
 5. The process of claim 1, wherein said detecting theenvironmental change comprises detecting a hardware overload in theclient system; wherein said deciding from said executing the procedureto make the switch comprises deciding that the hardware overload ismatched to a hardware overload condition in a pre-specified list ofhardware overload conditions; and wherein the differentiatingcharacteristic is the media stream bandwidth which will differ in thesecond media stream from the media stream bandwidth in the first mediastream so as to improve the efficiency of processing the video data bythe client system in relation to the hardware overload.
 6. A process forsupporting computer infrastructure, said process comprising providing atleast one support service for at least one of creating, integrating,hosting, maintaining, and deploying computer-readable code in a computersystem, wherein the code in combination with the computer system isconfigured to perform a method for switching media streams of a video ina client system comprised by the computer system, said media streamsbeing made available to the client system by a content providing system,said method comprising: a processor of the computer system receiving afirst media stream of the video from the content providing system; saidprocessor playing the first media stream in a SHOW mode in the clientsystem as the first media stream is being received; during said playingthe first media stream, said processor detecting an environmental changein an environment within or adjacent to the client system, saidenvironmental change configured to activate executing a procedure fordeciding whether to make a switch from playing the first media stream toplaying a second media stream of the video, said second media streamdiffering from the first media stream with respect to a differentiatingcharacteristic selected from the group consisting of a content modality,a color scheme, and a media stream bandwidth; responsive to saiddetecting the environmental change, said processor executing theprocedure; said processor deciding from said executing the procedure tomake the switch; and after said deciding, said processor switching fromplaying the first media stream to playing the second media stream in theSHOW mode as the second media stream is being received from the contentproviding system in response having been requested from the contentproviding system, said switching preserving video content continuity ofthe video, wherein said receiving the first media stream, said playingthe first media stream, said detecting the environmental change, saidexecuting the procedure, said deciding, and said switching are performedby said processor executing a media application in the client system,wherein timecodes identifying relative time within the video aredistributed in the first media stream and the second media stream, andwherein said switching comprises: requesting the second media streamfrom the content providing system; after said requesting, receiving thesecond media stream from the content providing system such that thesecond media stream is lagging the first media stream with respect totheir respective content; playing the received second media stream in aHIDE mode in the client system while the second media stream is beingreceived; before or during said playing the second media stream in theHIDE mode, pausing said playing the first media stream; and after saidpausing and at a real time corresponding to a matching timecodes, withina specified tolerance in the first and second media stream,transitioning from playing the second media stream in the HIDE mode toplaying the second media stream in the SHOW mode and stopping the firstmedia stream from being paused and from being played.
 7. The process ofclaim 6, wherein a pausing rank is associated with each timecodes in thefirst and second media streams and denotes a relative rank to pause saidplaying the first media stream, wherein the method comprisesconstraining said pausing to occur at a timecodes in the first mediastream at which the associated pausing rank is not less than apredesignated pausing rank threshold, and wherein said constraining saidpausing is performed by the media application.
 8. A computer programproduct, comprising a computer readable storage medium having a computerreadable program code stored therein, said computer readable programcode containing instructions that when executed by a processor of acomputer system implement a method for switching media streams of avideo in a client system comprised by the computer system, said mediastreams being made available to the client system by a content providingsystem, said method comprising: receiving a first media stream of thevideo from the content providing system; playing the first media streamin a SHOW mode in the client system as the first media stream is beingreceived; during said playing the first media stream, detecting anenvironmental change in an environment within or adjacent to the clientsystem, said environmental change configured to activate executing aprocedure for deciding whether to make a switch from playing the firstmedia stream to playing a second media stream of the video, said secondmedia stream differing from the first media stream with respect to adifferentiating characteristic selected from the group consisting of acontent modality, a color scheme, and a media stream bandwidth;responsive to said detecting the environmental change, executing theprocedure; deciding from said executing the procedure to make theswitch; and after said deciding, switching from playing the first mediastream to playing the second media stream in the SHOW mode as the secondmedia stream is being received from the content providing system inresponse having been requested from the content providing system, saidswitching preserving video content continuity of the video, wherein saidreceiving the first media stream, said playing the first media stream,said detecting the environmental change, said executing the procedure,said deciding, and said switching are performed by a media applicationin the client system, wherein timecodes identifying relative time withinthe video are distributed in the first media stream and the second mediastream, and wherein said switching comprises: requesting the secondmedia stream from the content providing system; after said requesting,receiving the second media stream from the content providing system suchthat the second media stream is lagging the first media stream withrespect to their respective content; playing the received second mediastream in a HIDE mode in the client system while the second media streamis being received; before or during said playing the second media streamin the HIDE mode, pausing said playing the first media stream; and aftersaid pausing and at a real time corresponding to a matching timecodes,within a specified tolerance in the first and second media stream,transitioning from playing the second media stream in the HIDE mode toplaying the second media stream in the SHOW mode and stopping the firstmedia stream from being paused and from being played.
 9. The computerprogram product of claim 8, wherein a pausing rank is associated witheach timecodes in the first and second media streams and denotes arelative rank to pause said playing the first media stream, wherein themethod comprises constraining said pausing to occur at a timecodes inthe first media stream at which the associated pausing rank is not lessthan a predesignated pausing rank threshold, and wherein saidconstraining said pausing is performed by the media application.